<?php


namespace app\index\controller;


class Banks extends Base
{
    /**
     * 展示我的银行卡
     * @throws \think\db\exception\DataNotFoundException
     * @throws \think\db\exception\ModelNotFoundException
     * @throws \think\exception\DbException
     */
    public function myBanks()
    {
        $id = $this->user['id'];
        $info = model('Banks')
            ->where('us_id', $id)
            ->where('type', 1)
            ->field('id,status,card_holder,bank_name,bank_account,bank_branch_name')
            ->order('status desc')
            ->select();
        foreach ($info as $k=>$v){
            $info[$k]['bank_account'] = substr($v['bank_account'],-4);
        }
        $this->s_msg(null, $info);
    }

    /**
     * 添加修改我的银行卡
     */
    public function addBank()
    {
        $id = input('post.id');

        $card_holder = input('post.card_holder'); // 持卡人名字
        // $status = input('post.status');   // 是否为默认银行卡
//        $tel = input('post.tel');    //  手机号

        $bank_name = input('post.bank_name');   // 银行卡名称
//        $code = input('post.code');    // 手机验证码
        $bank_account = input('post.bank_account'); // 银行卡号
        $bank_branch_name = input('post.bank_branch_name'); // 银行分行名称
        $param = [

            'type'=>1,
            'card_holder'=>$card_holder,
            //'status'=>$status,
//            'tel'=>$tel,
            'bank_name'=>$bank_name,
//            'code'=>$code,
            'bank_account'=>$bank_account,
            'bank_branch_name'=>$bank_branch_name

        ];
//        $code_info = cache($tel . 'code') ?: "";
//        if (!$code_info) {
//            $this->e_msg('请重新发送验证码');
//        } elseif (trim(input('post.code')) != $code_info) {
//            $this->e_msg('验证码不正确');
//        }
//        unset($code);

        $validate = validate('Banks');
        if (!$validate->check($param)) {
            $this->e_msg($validate->getError());
        }
        if ( checkBankCard($bank_account)==false){
            $this->e_msg('银行卡号不符合规则');
        };
        if (empty($id)){
            $param['us_id'] = $this->user['id'];
            $param['add_time'] = date('Y-m-d H:i:s');
            $default = model('Banks')
                ->where('type',1)
                ->where('us_id', $this->user['id'])
                ->where('status', 1)
                ->find();
            if (!$default) {
                $param['status'] = 1;
            }else{
                $param['status'] = 0;
            }
            $rel = model('Banks')->addInfo($param);
            if ($rel) {
                $this->s_msg('添加成功', $rel);
            }
        }else{
            $res = model('Banks')->save($param, ['id' => $id]);
            if ($res) {
                $this->s_msg('修改成功');
            } else {
                $this->e_msg('修改失败');
            }
        }
    }

    /**
     * 设置默认银行卡
     */
    public function setDefaultBank()
    {
        $map['id'] = input('post.id');
        $param['status'] = 1;
        $us_id = model('Banks')
            ->where('type',1)
            ->where($map)
            ->value('us_id');
        model('Banks')->where('us_id', $us_id)
            ->where('type',1)
            ->where('status', 1)
            ->setDec('status');
        $rel = model('Banks')->updateInfo($map, $param);
        if ($rel) {
            $this->s_msg('设置成功');
        } else {
            $this->s_msg('您没有作出修改');
        }
    }

    // 删除银行卡
    public function del()
    {
        $id = input('post.id');
        if (!$id) {
            $this->e_msg('非法操作');
        } else {
            $info = model('Banks')->get($id);
        }
        if (!$info) {
            $this->e_msg('非法操作');
        } else {
            $res = model('Banks')->destroy($id);
        }
        if ($res) {
            $this->s_msg('解绑成功');
        }
    }

}